/*
 * Copyright (c) 2013-2018 上海汇数数据. All rights reserved.
 * @(#) AppProfile.java 2018-08-10 09:54
 */

package cn.jh.common.core.support.spring;

import org.jetbrains.annotations.Contract;


/**
 * @author Fuchun
 * @since 1.0
 */
public enum AppProfile {

    /**
     * 指开发人员本地开发环境 。
     */
    LOCAL("local", "本地环境"),

    /** 指通用的开发环境：不能包含 *-local, 或者 local-* 配置。*/
    DEV("dev", "开发环境"),

    /**
     * 指 QA 部署的环境。
     */
    TEST("test", "测试环境"),

    /** 生产线上的环境。*/
    PROD("prod", "生产环境")
    ;

    final String value;
    final String desc;

    AppProfile(String value, String desc) {
        this.value = value;
        this.desc = desc;
    }

    public String getValue() {
        return value;
    }

    public String getDesc() {
        return desc;
    }

    @Contract(pure = true)
    public boolean isIn(String[] activeProfiles) {
        if (activeProfiles == null || activeProfiles.length == 0) {
            return false;
        }
        for (String activeProfile : activeProfiles) {
            // 不接受前缀比较，不接受模糊相似，只接受完全相等
            if (value.equals(activeProfile)) {
                return true;
            }
        }
        return false;
    }
}
